package com.lanchetech.admin.service;

import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.*;
import com.lanchetech.entity.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

public interface CourseService {

    BaseResp editColumns(Columns req);

    ResultData<Columns> getColumnsDetail(Long id);

    BaseResp deleteColumns(Long id);

    ResultData<BasePageResp<Columns>> getColumnsPage(PageReq req);

    ResultData<List<Columns>> getColumnsList();

    ResultData<List<Course>> getCourseListByColumnIds(List<Long> columnIds);

    BaseResp editCourse(Course req);

    ResultData<Course> getCourseDetail(Long id);

    BaseResp deleteCourse(Long id);

    ResultData<BasePageResp<Course>> getCoursePage(PageReq req);

    BaseResp editSkuColumnCourse(List<SkuColumnCourse> req);

    BaseResp deleteSkuColumnCourse(Long skuId, Byte type);

    ResultData<BasePageResp<SkuCourseBindVO>> getSkuPageWithBindCount(PageReq req);

    ResultData<List<SkuColumnCourse>> getSkuColumnCourseDetail(Long skuId, Byte type);

    ResultData<BasePageResp<ColumnCourseAuthVO>> getColumnCourseAuthPage(PageReq req);

    ResultData<BasePageResp<HomeworkVO>> getHomeworkPage(PageReq req);

    ResultData<BasePageResp<ExpFlowVO>> getExpFlowPage(PageReq req);

    BaseResp editHomeworkReply(Homework req);

}